package parser

import (
	"github.com/Exleryz/m3u8/internal/m3u8/parser/key"
	"strings"
)

// M3U8Info m3u8任务封装
type M3U8Info struct {
	Name    string
	BaseUrl string
	M3U8Url string
	Scheme  string
	DirName string
	TsList  []TsInfo
	// key 操作
	Key *key.M3U8Key
}

type TsInfo struct {
	Index int
	TsUrl string
}

// GetBaseUrl 获取请求的基础路径
func (info *M3U8Info) GetBaseUrl() string {
	// 其实还需要判断 m3u8文件里面 是否包含了 scheme
	if info.BaseUrl == "" {
		if info.M3U8Url != "" {
			index := strings.LastIndex(info.M3U8Url, "/")
			info.BaseUrl = info.M3U8Url[:index+1]
		} else {
			panic("no base url")
		}
	}

	return info.BaseUrl
}

//// DownloadM3U8File 下载 index.m3u8文件
//func (info *M3U8Info) DownloadM3U8File() (string, error) {
//	_, body, errs := util.NewRequest().Get(info.M3U8Url).End()
//
//	if errs != nil && len(errs) > 0 {
//		fmt.Println(errs)
//		return "", errs[0]
//	}
//
//	fmt.Println(info.Name, len(strings.Split(body, "\n")))
//	if info.SavePath != "" {
//		// 填入 index.m3u8 文件
//		ff, err := os.Create(path.Join(info.SavePath, "index.m3u8"))
//		if err != nil {
//			fmt.Println(err)
//			return "", err
//		}
//		defer ff.Close()
//
//		ff.WriteString(info.M3U8Url + "\n")
//		ff.WriteString(body)
//	}
//
//	return body, nil
//}
